//
//  RootViewCollect.swift
//  MXWeiBo
//
//  Created by Apple on 16/2/22.
//  Copyright © 2016年 Applea. All rights reserved.
//

import UIKit
import HMRefresh
// 根控制器 －其他主控制器到基类
class RootViewCollect: UIViewController {

    
//    MARK : 公共属性
////    用户登录标记
//    var userLogon = false
//    表格视图
    var tableView=UITableView(frame: CGRectZero, style: .Plain)
    
//下拉刷新控件
    var refreshControl: HMRefreshControl?
////    上拉刷新控件
//    lazy var pullUpView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
    var visitorView : VisitorView?
//    MARK: - 视图生命周期
    override func loadView() {
//        判断是否显示访客视图
         UserAccount.sharedUserAccount.isLogin ? setupTableView() : setupUserLoad()
       
    }
//    在 viewDidLoad 中 设置数据
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
//        如果没有登录注册通知 
        if UserAccount.sharedUserAccount.isLogin {
        
        loadData()
        } else {
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "loginSuccessed",
            name: MXWeiBoLoginSuccessedNotification,
            object: nil)
        }
        
    }

//    加载数据，真正的加载数据应该在子类中
    func loadData()
    {
        
    }
//登录成功监听方法
   @objc private func loginSuccessed() {
    view = nil
//        注销通知
    NSNotificationCenter.defaultCenter().removeObserver(self, name: MXWeiBoLoginSuccessedNotification, object: nil)
    }
}
//MARK : 设置界面
extension RootViewCollect
{
    
//    设置访客视图
    private func setupUserLoad()
    {
        //        设置代理
        visitorView?.delegate = self
        
//        设置状态栏按钮rightBarButtonItem
        navigationItem.rightBarButtonItem=UIBarButtonItem(
            title: "登录",
            style: .Plain,
            target: self,
            action: "visitorViewDidLogin")
        navigationItem.leftBarButtonItem=UIBarButtonItem(
            title: "注册",
            style: .Plain,
            target: self,
            action: "visitorViewDidRegister")
        visitorView=VisitorView()
        view=visitorView

        
    }
//    设置表格视图
    private func setupTableView()
    {
        view = tableView
        
        //        设置数据源
        tableView.dataSource=self
        //        设置代理
        tableView.delegate=self
    }
    
//    需要设置刷新的界面设置刷新控件
     func setupRrfresh()
    {
        //        设置下拉
        tableView.addSubview(refreshControl!)
        //        设置属性控件的监听方法
        refreshControl?.addTarget(self, action: "loadData", forControlEvents: .ValueChanged)
        
//        //        设置上拉视图
//        tableView.tableFooterView=pullUpView
    }
}
//NARK －－ VisitorViewDelegate
extension RootViewCollect: VisitorViewDelegate {

    func visitorViewDidLogin() {
        print("登录")
        let oauthVC=OAuthViewController()
        let nav=UINavigationController(rootViewController: oauthVC)
//        model出控制器
       presentViewController(nav, animated: true, completion: nil)
    }
    func visitorViewDidRegister() {
        print("注册")
    }
}
//MARK －－ tableview代理和协议
extension RootViewCollect: UITableViewDataSource, UITableViewDelegate{
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
////    代理方法
//    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
////        分组数量
//        let section = tableView.numberOfSections - 1
////        行数
//        let row = tableView.numberOfRowsInSection(section) - 1
//        
////        print("\(indexPath) \(section) \(row) ")
////        判断是否是最后一行，如果是，则上拉刷新
//        if section == indexPath.section && row == indexPath.row
//        {
////             pullUpView.startAnimating()
////            加载数据
//            loadData()
//        }
//    }
}
